home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume2 / fun / nethack.d1 < prev    next >
Text File  |  1988-12-02  |  51KB  |  1,835 lines

  1. Path: xanth!nic.MR.NET!hal!cwjcc!gatech!rutgers!mit-eddie!ll-xn!adelie!infinet!ulowell!page
  2. From: page@swan.ulowell.edu (Bob Page)
  3. Newsgroups: comp.sources.amiga
  4. Subject: v02i070:  nethack - D&D-like game (amiga diffs), Part01/04
  5. Message-ID: <10401@swan.ulowell.edu>
  6. Date: 1 Dec 88 23:42:39 GMT
  7. Organization: University of Lowell, Computer Science Dept.
  8. Lines: 1824
  9. Approved: page@swan.ulowell.edu
  10.  
  11. Submitted-by: u211344@hnykun11.bitnet (Olaf 'Rhialto' Seibert)
  12. Posting-number: Volume 2, Issue 70
  13. Archive-name: fun/nethack.d1
  14.  
  15. [combine all four of these diff files together into one file, then
  16. feed that file to the 'patch' program (posted to comp.sources.amiga a
  17. long time ago) to produce "amigafied" nethack sources.  ..Bob]
  18.  
  19. #    This is a shell archive.
  20. #    Remove everything above and including the cut line.
  21. #    Then run the rest of the file through sh.
  22. #----cut here-----cut here-----cut here-----cut here----#
  23. #!/bin/sh
  24. # shar:    Shell Archiver
  25. #    Run the following text with /bin/sh to create:
  26. #    diffs.1
  27. # This archive created: Thu Dec  1 17:55:11 1988
  28. cat << \SHAR_EOF > diffs.1
  29.  
  30. diff -bc2 alloc.c AmigaVersion:alloc.c
  31. No differences encountered
  32. diff -bc2 bones.c AmigaVersion:bones.c
  33. *** bones.c     Fri Jan 22 09:08:30 1988
  34. --- AmigaVersion:bones.c         Thu Aug  4 02:06:23 1988
  35. ***************
  36. *** 4,7
  37.  
  38.   #include "hack.h"
  39.   extern char plname[PL_NSIZ];
  40.   extern long somegold();
  41.  
  42. --- 4,8 -----
  43.  
  44.   #include "hack.h"
  45. +
  46.   extern char plname[PL_NSIZ];
  47.   extern long somegold();
  48. ***************
  49. *** 95,99
  50.         }
  51.   #ifdef DGK
  52. !       fd = open(bones, O_WRONLY | O_BINARY | O_CREAT, FMASK);
  53.   #else
  54.         fd = creat(bones, FMASK);
  55.  
  56. --- 96,100 -----
  57.       }
  58.   #ifdef DGK
  59. !     fd = open(bones, O_WRONLY | O_BINARY | O_CREAT | O_TRUNC, FMASK);
  60.   #else
  61.       fd = creat(bones, FMASK);
  62. ***************
  63. *** 111,114
  64.         savelev(fd,dlevel);
  65.   #endif
  66.         (void) close(fd);
  67.   }
  68.  
  69. --- 112,118 -----
  70.       savelev(fd,dlevel);
  71.   #endif
  72. + #ifdef COMPRESS
  73. +     bflush(fd);
  74. + #endif
  75.       (void) close(fd);
  76.   }
  77. ***************
  78. *** 162,165
  79.                 }
  80.   #endif
  81.                 getlev(fd, 0, dlevel);
  82.                 for(x = 0; x < COLNO; x++) for(y = 0; y < ROWNO; y++)
  83.  
  84. --- 166,172 -----
  85.         }
  86.   #endif
  87. + #ifdef COMPRESS
  88. +       minit();
  89. + #endif
  90.         getlev(fd, 0, dlevel);
  91.         for(x = 0; x < COLNO; x++) for(y = 0; y < ROWNO; y++) {
  92. ***************
  93. *** 163,168
  94.   #endif
  95.                 getlev(fd, 0, dlevel);
  96. !               for(x = 0; x < COLNO; x++) for(y = 0; y < ROWNO; y++)
  97. !                       levl[x][y].seen = levl[x][y].new = 0;
  98.         }
  99.         (void) close(fd);
  100.  
  101. --- 170,178 -----
  102.   #endif
  103.         getlev(fd, 0, dlevel);
  104. !       for(x = 0; x < COLNO; x++) for(y = 0; y < ROWNO; y++) {
  105. !           /* levl[x][y].seen = levl[x][y].new = 0; */
  106. !           RM_CLR_SEEN(levl[x][y]);
  107. !           RM_CLR_NEW(levl[x][y]);
  108. !       }
  109.       }
  110.       (void) close(fd);
  111. diff -bc2 config.h AmigaVersion:config.h
  112. *** config.h    Wed May  4 15:07:48 1988
  113. --- AmigaVersion:config.h        Tue Jul 26 14:39:54 1988
  114. ***************
  115. *** 19,23
  116.    */
  117.   #ifdef __MSDOS__      /* Turbo C auto-defines __MSDOS__, others MSDOS */
  118. ! /* # define MSDOS     /* define for MS-DOS (actually defined by compiler) */
  119.   #endif
  120.   #define       UNIX            /* delete if no fork(), exec() available */
  121.  
  122. --- 19,23 -----
  123.    */
  124.   #ifdef __MSDOS__      /* Turbo C auto-defines __MSDOS__, others MSDOS */
  125. ! # define MSDOS                /* define for MS-DOS (actually defined by
  126. compiler) */
  127.   #endif
  128.   #ifdef AMIGA
  129. ***************
  130. *** 21,25
  131.   /* # define MSDOS     /* define for MS-DOS (actually defined by compiler) */
  132.   #endif
  133. ! #define       UNIX            /* delete if no fork(), exec() available */
  134.   /* #define    GENIX           /* Yet Another Unix Clone */
  135.   #define BSD           /* defind for 4.n BSD  */
  136.  
  137. --- 21,28 -----
  138.   # define MSDOS                /* define for MS-DOS (actually defined by
  139. compiler) */
  140.   #endif
  141. ! #ifdef AMIGA
  142. ! # define MSDOS                /* Also define for AMIGA */
  143. ! #endif
  144. ! /* #define UNIX       /* delete if no fork(), exec() available */
  145.   /* #define GENIX      /* Yet Another Unix Clone */
  146.   /* #define BSD                /* define for 4.n BSD  */
  147. ***************
  148. *** 23,27
  149.   #define       UNIX            /* delete if no fork(), exec() available */
  150.   /* #define    GENIX           /* Yet Another Unix Clone */
  151. ! #define BSD           /* defind for 4.n BSD  */
  152.   /* #define SYSV               /* define for System V */
  153.   /* #define NETWORK    /* if running on a networked system */
  154.  
  155. --- 26,30 -----
  156.   /* #define UNIX       /* delete if no fork(), exec() available */
  157.   /* #define GENIX      /* Yet Another Unix Clone */
  158. ! /* #define BSD                /* define for 4.n BSD  */
  159.   /* #define SYSV       /* define for System V */
  160.   /* #define NETWORK    /* if running on a networked system */
  161. ***************
  162. *** 30,34
  163.   #define VERSION       "2.3e"  /* version number. */
  164.  
  165. ! #define PYRAMID_BUG   /* avoid a bug on the Pyramid */
  166.   /* #define APOLLO             /* same for the Apollo */
  167.   /* #define STUPID             /* avoid some complicated expressions if
  168.  
  169. --- 33,37 -----
  170.   #define VERSION "2.3e"  /* version number. */
  171.  
  172. ! /* #define PYRAMID_BUG        /* avoid a bug on the Pyramid */
  173.   /* #define APOLLO             /* same for the Apollo */
  174.   /* #define STUPID             /* avoid some complicated expressions if
  175. ***************
  176. *** 41,46
  177.   #endif
  178.  
  179. ! #define WIZARD  "werner"      /* the person allowed to use the -D option */
  180. ! #define RECORD        "record"/* the file containing the list of topscorers */
  181.   #define       NEWS    "news"  /* the file containing the latest hack news */
  182.   #define       HELP    "help"  /* the file containing a description of the
  183. commands */
  184.  
  185. --- 44,51 -----
  186.   #endif
  187.  
  188. ! #ifndef WIZARD
  189. ! # define WIZARD "olaf"   /* the person allowed to use the -D option */
  190. ! #endif
  191. ! #define RECORD        "record" /* the file containing the list of topscorers
  192. */
  193.   #define NEWS  "news"  /* the file containing the latest hack news */
  194.   #define HELP  "help"  /* the file containing a description of the commands */
  195. ***************
  196. *** 69,75
  197.    * A stat system call is done on the mailbox every MAILCKFREQ moves.
  198.    */
  199. ! #define       MAIL
  200. ! #define       DEF_MAILREADER  "/usr/bin/mail"         /* or e.g. /bin/mail */
  201. ! #define       MAILCKFREQ      1
  202.  
  203.  
  204.  
  205. --- 74,80 -----
  206.    * A stat system call is done on the mailbox every MAILCKFREQ moves.
  207.    */
  208. ! /* #define MAIL
  209. ! /* #define DEF_MAILREADER  "/usr/bin/mail"     /* or e.g. /bin/mail */
  210. ! /* #define MAILCKFREQ    1 */
  211.  
  212.  
  213. ***************
  214. *** 96,99
  215.    * If you define HACKDIR, then this will be the default playground;
  216.    * otherwise it will be the current directory.
  217.    */
  218.   #define HACKDIR       "/usr/games/lib/nethacklib"
  219.  
  220. --- 101,105 -----
  221.    * If you define HACKDIR, then this will be the default playground;
  222.    * otherwise it will be the current directory.
  223. +  * Only matters when using unixmain.c
  224.    */
  225.   #define HACKDIR "/usr/games/lib/nethacklib"
  226. ***************
  227. *** 124,130
  228.   #define memcmp(s1, s2, n)     bcmp(s2, s1, n)
  229.   #else
  230. ! #include <string.h>           /* idem on System V */
  231. ! #define       index   strchr
  232. ! #define       rindex  strrchr
  233.   #endif
  234.  
  235.  
  236. --- 130,139 -----
  237.   #define memcmp(s1, s2, n)       bcmp(s2, s1, n)
  238.   #else
  239. ! /*#include <string.h>       /* idem on System V */
  240. ! extern char *index(), *rindex();
  241. ! #define memcpy(d, s, n)     movmem(s, d, n)
  242. ! #define memcmp(s1, s2, n)   cmpmem(s2, s1, n)
  243. ! /*#define index   strchr*/
  244. ! /*#define rindex  strrchr*/
  245.   #endif
  246.  
  247. ***************
  248. *** 167,170
  249.    */
  250.   #define       Bitfield(x,n)   uchar x
  251.  
  252.   #define       SIZE(x) (int)(sizeof(x) / sizeof(x[0]))
  253.  
  254. --- 176,182 -----
  255.    */
  256.   #define Bitfield(x,n)   uchar x
  257. + #ifdef AZTEC_C
  258. + # define    BITFIELD_BUG      /* So there. */
  259. + #endif
  260.  
  261.   #define SIZE(x) (int)(sizeof(x) / sizeof(x[0]))
  262. ***************
  263. *** 173,176
  264.   #include <fcntl.h>
  265.   #define       exit    msexit          /* do chdir first */
  266.   #ifdef getchar
  267.   #     undef getchar
  268.  
  269. --- 185,190 -----
  270.   #include <fcntl.h>
  271.   #define exit  msexit          /* do chdir first */
  272. + #define fopen fopenp          /* using PATH */
  273. +  extern FILE   *fopenp();
  274.   #ifdef getchar
  275.   #     undef getchar
  276. ***************
  277. *** 175,180
  278.   #ifdef getchar
  279.   #     undef getchar
  280. ! #endif /* getchar /**/
  281. ! #define getchar tgetch
  282.   #define DGK                   /* MS DOS specific enhancements by dgk */
  283.  
  284.  
  285. --- 189,194 -----
  286.   #ifdef getchar
  287.   #     undef getchar
  288. ! #endif /* getchar */
  289. ! #define getchar() tgetch()
  290.   #define DGK                   /* MS DOS specific enhancements by dgk */
  291.  
  292. ***************
  293. *** 228,231
  294.   #define       STOOGES         /* Three wild and crazy guys - Bruce Mewborne */
  295.   #define SINKS         /* Kitchen sinks - Janet Walz */
  296.  
  297.   #ifdef MSDOS
  298.  
  299. --- 242,246 -----
  300.   #define STOOGES       /* Three wild and crazy guys - Bruce Mewborne */
  301.   #define SINKS         /* Kitchen sinks - Janet Walz */
  302. + #define COMPRESS      /* Zero-run compression of files - Olaf Seibert */
  303.  
  304.   #ifdef MSDOS
  305. diff -bc2 date.h AmigaVersion:date.h
  306. *** date.h      Fri Jan 22 09:28:44 1988
  307. --- AmigaVersion:date.h  Thu Aug  4 19:11:30 1988
  308. ***************
  309. *** 1,3
  310.   /*    SCCS Id: @(#)date.h     1.4     87/08/08 */
  311.  
  312. ! char datestring[] = "Fri Jan 22 09:28:44 1988";
  313.  
  314. --- 1,3 -----
  315.   /*    SCCS Id: @(#)date.h    1.4    87/08/08 */
  316.  
  317. ! char datestring[] = "Thu Aug  4 19:11:48 1988";
  318. diff -bc2 dog.c AmigaVersion:dog.c
  319. No differences encountered
  320. diff -bc2 dothrow.c AmigaVersion:dothrow.c
  321. No differences encountered
  322. diff -bc2 edog.h AmigaVersion:edog.h
  323. No differences encountered
  324. diff -bc2 eshk.h AmigaVersion:eshk.h
  325. No differences encountered
  326. diff -bc2 extern.h AmigaVersion:extern.h
  327. No differences encountered
  328. diff -bc2 flag.h AmigaVersion:flag.h
  329. No differences encountered
  330. diff -bc2 func_tab.h AmigaVersion:func_tab.h
  331. No differences encountered
  332. diff -bc2 gen.h AmigaVersion:gen.h
  333. No differences encountered
  334. diff -bc2 gold.h AmigaVersion:gold.h
  335. No differences encountered
  336. diff -bc2 hack.h AmigaVersion:hack.h
  337. No differences encountered
  338. diff -bc2 makedefs.c AmigaVersion:makedefs.c
  339. *** makedefs.c  Wed May  4 15:08:14 1988
  340. --- AmigaVersion:makedefs.c      Mon Jul 25 00:37:53 1988
  341. ***************
  342. *** 8,16
  343.  
  344.   #ifdef MSDOS
  345. ! #undef        exit
  346. ! #define freopen _freopen
  347. ! #define       alloc   malloc
  348. ! #define RDMODE        "r"
  349. ! #define WRMODE        "w"
  350.   #else
  351.   #define RDMODE        "r+"
  352.  
  353. --- 8,18 -----
  354.  
  355.   #ifdef MSDOS
  356. ! # ifndef AMIGA
  357. ! #  define freopen _freopen
  358. ! # endif
  359. ! # undef  exit
  360. ! # define alloc         malloc
  361. ! # define RDMODE  "r"
  362. ! # define WRMODE  "w"
  363.   #else
  364.   # define RDMODE  "r+"
  365. ***************
  366. *** 14,19
  367.   #define WRMODE        "w"
  368.   #else
  369. ! #define RDMODE        "r+"
  370. ! #define WRMODE        "w+"
  371.   #endif
  372.  
  373.  
  374. --- 16,21 -----
  375.   # define WRMODE  "w"
  376.   #else
  377. ! # define RDMODE  "r+"
  378. ! # define WRMODE  "w+"
  379.   #endif
  380.  
  381. ***************
  382. *** 18,21
  383.   #endif
  384.  
  385.   /* construct definitions of object constants */
  386.   #define       OBJ_FILE        "objects.h"
  387.  
  388. --- 20,35 -----
  389.   #endif
  390.  
  391. + #ifdef AMIGA      /* Get back normal stdio. Compiler dependent. */
  392. + # define stdin            (&Cbuffs[0])
  393. + # define stdout     (&Cbuffs[1])
  394. + # undef puts
  395. + # undef printf
  396. + # define remove(n)  unlink(n)
  397. + #endif
  398. +
  399. + #ifdef newobj
  400. + #   undef newobj
  401. + #endif
  402. +
  403.   /* construct definitions of object constants */
  404.   #define OBJ_FILE      "objects.h"
  405. ***************
  406. *** 134,139
  407.                 exit(1);
  408.         }
  409. ! #ifdef MSDOS
  410. !       sprintf(infile, "%s.bas", RUMOR_FILE);
  411.   #else
  412.         sprintf(infile, "%s.base", RUMOR_FILE);
  413.  
  414. --- 148,153 -----
  415.                 exit(1);
  416.         }
  417. ! #ifdef AMIGA
  418. !       sprintf(infile, "%s.base", RUMOR_FILE);
  419.   #else
  420.   # ifdef MSDOS
  421. ***************
  422. *** 137,140
  423.         sprintf(infile, "%s.bas", RUMOR_FILE);
  424.   #else
  425.         sprintf(infile, "%s.base", RUMOR_FILE);
  426.   #endif
  427.  
  428. --- 151,157 -----
  429.         sprintf(infile, "%s.base", RUMOR_FILE);
  430.   #else
  431. + # ifdef MSDOS
  432. +       sprintf(infile, "%s.bas", RUMOR_FILE);
  433. + # else
  434.         sprintf(infile, "%s.base", RUMOR_FILE);
  435.   # endif
  436. ***************
  437. *** 138,141
  438.   #else
  439.         sprintf(infile, "%s.base", RUMOR_FILE);
  440.   #endif
  441.         if(freopen(infile, RDMODE, stdin) == NULL) {
  442.  
  443. --- 155,159 -----
  444.   # else
  445.         sprintf(infile, "%s.base", RUMOR_FILE);
  446. + # endif
  447.   #endif
  448.         if(freopen(infile, RDMODE, stdin) == NULL) {
  449. ***************
  450. *** 218,221
  451.  
  452.         while(gets(inline) != NULL) {
  453.   #ifdef KOPS
  454.             if(!strcmp(inline, "K       a kobold"))
  455.  
  456. --- 236,243 -----
  457.  
  458.         while(gets(inline) != NULL) {
  459. +           /* note missing space v */
  460. +           if (! strcmp(inline, "\ta dark part of a room"))
  461. +               printf(" \ta dark part of a room\n");
  462. +           else
  463.   #ifdef KOPS
  464.             if(!strcmp(inline, "K\ta kobold"))
  465. ***************
  466. *** 219,223
  467.         while(gets(inline) != NULL) {
  468.   #ifdef KOPS
  469. !           if(!strcmp(inline, "K       a kobold"))
  470.                 printf("K\ta Keystone Kop\n");
  471.             else
  472.  
  473. --- 241,245 -----
  474.             else
  475.   #ifdef KOPS
  476. !           if(!strcmp(inline, "K\ta kobold"))
  477.                 printf("K\ta Keystone Kop\n");
  478.             else
  479. ***************
  480. *** 224,228
  481.   #endif
  482.   #ifdef KAA
  483. !           if(!strcmp(inline, "Q       a quasit"))
  484.                 printf("Q\ta quantum mechanic\n");
  485.             else
  486.  
  487. --- 246,250 -----
  488.   #endif
  489.   #ifdef KAA
  490. !           if(!strcmp(inline, "Q\ta quasit"))
  491.                 printf("Q\ta quantum mechanic\n");
  492.             else
  493. ***************
  494. *** 229,234
  495.   #endif
  496.   #ifdef ROCKMOLE
  497. !           if(!strcmp(inline, "r       a giant rat"))
  498. !               printf("r\ta rockmole\n");
  499.             else
  500.   #endif
  501.  
  502. --- 251,256 -----
  503.   #endif
  504.   #ifdef ROCKMOLE
  505. !           if(!strcmp(inline, "r\ta giant rat"))
  506. !               printf("r\ta rockmole (or a giant rat)\n");
  507.             else
  508.   #endif
  509. ***************
  510. *** 234,238
  511.   #endif
  512.   #ifdef SPIDERS
  513. !           if(!strcmp(inline, "s       a scorpion"))
  514.                 printf("s\ta giant spider\n");
  515.             else if (!strcmp(inline, "\"        an amulet"))
  516.  
  517. --- 256,260 -----
  518.   #endif
  519.   #ifdef SPIDERS
  520. !           if(!strcmp(inline, "s\ta scorpion"))
  521.                 printf("s\ta giant spider\n");
  522.             else if (!strcmp(inline, "\"\tan amulet"))
  523. ***************
  524. *** 236,240
  525.             if(!strcmp(inline, "s       a scorpion"))
  526.                 printf("s\ta giant spider\n");
  527. !           else if (!strcmp(inline, "\"        an amulet"))
  528.                 printf("\"\tan amulet (or a web)\n");
  529.             else
  530.  
  531. --- 258,262 -----
  532.             if(!strcmp(inline, "s\ta scorpion"))
  533.                 printf("s\ta giant spider\n");
  534. !           else if (!strcmp(inline, "\"\tan amulet"))
  535.                 printf("\"\tan amulet (or a web)\n");
  536.             else
  537. ***************
  538. *** 241,245
  539.   #endif
  540.   #ifdef  SINKS
  541. !           if (!strcmp(inline, "#      a corridor"))
  542.                 printf("#\ta corridor (or a kitchen sink)\n");
  543.             else
  544.  
  545. --- 263,267 -----
  546.   #endif
  547.   #ifdef        SINKS
  548. !           if (!strcmp(inline, "#\ta corridor"))
  549.                 printf("#\ta corridor (or a kitchen sink)\n");
  550.             else
  551. ***************
  552. *** 246,250
  553.   #endif
  554.   #ifdef        SPELLS
  555. !           if (!strcmp(inline, "+      a door"))
  556.                 printf("+\ta door (or a spell book)\n");
  557.             else
  558.  
  559. --- 268,272 -----
  560.   #endif
  561.   #ifdef        SPELLS
  562. !           if (!strcmp(inline, "+\ta door"))
  563.                 printf("+\ta door (or a spell book)\n");
  564.             else
  565. ***************
  566. *** 251,255
  567.   #endif
  568.   #ifdef        FOUNTAINS
  569. !           if(!strcmp(inline, "}       water filled area")) {
  570.                 puts(inline);
  571.                 printf("{\ta fountain\n");
  572.  
  573. --- 273,277 -----
  574.   #endif
  575.   #ifdef        FOUNTAINS
  576. !           if(!strcmp(inline, "}\twater filled area")) {
  577.                 puts(inline);
  578.                 printf("{\ta fountain\n");
  579. ***************
  580. *** 257,261
  581.   #endif
  582.   #ifdef NEWCLASS
  583. !           if(!strcmp(inline, "^       a trap")) {
  584.                 puts(inline);
  585.                 printf("\\\tan opulent throne.\n");
  586.  
  587. --- 279,283 -----
  588.   #endif
  589.   #ifdef NEWCLASS
  590. !           if(!strcmp(inline, "^\ta trap")) {
  591.                 puts(inline);
  592.                 printf("\\\tan opulent throne.\n");
  593. ***************
  594. *** 653,657
  595.   }
  596.  
  597. ! #if defined(SYSV) || defined(GENIX)
  598.   rename(oldname, newname)
  599.         char    *oldname, *newname;
  600.  
  601. --- 675,687 -----
  602.   }
  603.  
  604. ! /* #if defined(SYSV) || defined(GENIX) */
  605. ! #ifdef SYSV
  606. ! # define XXX
  607. ! #endif
  608. ! #ifdef GENIX
  609. ! # define XXX
  610. ! #endif
  611. !
  612. ! #ifdef XXX
  613.   rename(oldname, newname)
  614.         char    *oldname, *newname;
  615. ***************
  616. *** 665,668
  617.   }
  618.   #endif
  619.  
  620.   #ifdef MSDOS
  621.  
  622. --- 695,699 -----
  623.   }
  624.   #endif
  625. + #undef XXX
  626.  
  627.   #ifdef AMIGA
  628. ***************
  629. *** 666,669
  630.   #endif
  631.  
  632.   #ifdef MSDOS
  633.   /* Get around bug in freopen when opening for writing */
  634.  
  635. --- 697,704 -----
  636.   #undef XXX
  637.  
  638. + #ifdef AMIGA
  639. + #   undef MSDOS /* Watch out! */
  640. + #endif
  641. +
  642.   #ifdef MSDOS
  643.   /* Get around bug in freopen when opening for writing */
  644. ***************
  645. *** 695,696
  646.   # endif
  647.   #endif
  648.  
  649. --- 730,739 -----
  650.   # endif
  651.   #endif
  652. +
  653. + #ifdef AMIGA
  654. + int getpid() {
  655. +       return(1);
  656. + }
  657. + # endif
  658. +
  659. +
  660. diff -bc2 mfndpos.h AmigaVersion:mfndpos.h
  661. No differences encountered
  662. diff -bc2 mkmaze.c AmigaVersion:mkmaze.c
  663. *** mkmaze.c    Wed May  4 15:08:22 1988
  664. --- AmigaVersion:mkmaze.c        Mon Jul 25 01:09:57 1988
  665. ***************
  666. *** 19,23
  667.         for(x = 2; x < COLNO-1; x++)
  668.                 for(y = 2; y < ROWNO-1; y++)
  669. !                       levl[x][y].typ = (x%2 && y%2) ? 0 : HWALL;
  670.   #ifndef RPH
  671.         if(al) {
  672.  
  673. --- 19,23 -----
  674.         for(x = 2; x < COLNO-1; x++)
  675.                 for(y = 2; y < ROWNO-1; y++)
  676. !                       RM_SET_TYP(levl[x][y], (x%2 && y%2) ? 0 : HWALL);
  677.   #ifndef RPH
  678.         if(al) {
  679. ***************
  680. *** 31,35
  681.             zy = 2*(ROWNO/4) - 1;
  682.             for(x = zx-2; x < zx+4; x++) for(y = zy-2; y <= zy+2; y++) {
  683. !               levl[x][y].typ =
  684.                     (y == zy-2 || y == zy+2 || x == zx-2 || x == zx+3) ? POOL :
  685.                     (y == zy-1 || y == zy+1 || x == zx-1 || x == zx+2) ? HWALL:
  686.  
  687. --- 31,35 -----
  688.             zy = 2*(ROWNO/4) - 1;
  689.             for(x = zx-2; x < zx+4; x++) for(y = zy-2; y <= zy+2; y++) {
  690. !               RM_SET_TYP(levl[x][y],
  691.                     (y == zy-2 || y == zy+2 || x == zx-2 || x == zx+3) ? POOL :
  692.                     (y == zy-1 || y == zy+1 || x == zx-1 || x == zx+2) ? HWALL:
  693. ***************
  694. *** 34,38
  695.                     (y == zy-2 || y == zy+2 || x == zx-2 || x == zx+3) ? POOL :
  696.                     (y == zy-1 || y == zy+1 || x == zx-1 || x == zx+2) ? HWALL:
  697. !                   ROOM;
  698.             }
  699.   #ifdef RPH
  700.  
  701. --- 34,38 -----
  702.                     (y == zy-2 || y == zy+2 || x == zx-2 || x == zx+3) ? POOL :
  703.                     (y == zy-1 || y == zy+1 || x == zx-1 || x == zx+2) ? HWALL:
  704. !                   ROOM);
  705.             }
  706.   #ifdef RPH
  707. ***************
  708. *** 74,78
  709.         for(x = 2; x < COLNO-1; x++)
  710.                 for(y = 2; y < ROWNO-1; y++) {
  711. !                       switch(levl[x][y].typ) {
  712.                         case HWALL:
  713.                                 levl[x][y].scrsym = HWALL_SYM;
  714.  
  715. --- 74,78 -----
  716.         for(x = 2; x < COLNO-1; x++)
  717.                 for(y = 2; y < ROWNO-1; y++) {
  718. !                       switch(RM_TYP(levl[x][y])) {
  719.                         case HWALL:
  720.                                 levl[x][y].scrsym = HWALL_SYM;
  721. ***************
  722. *** 105,109
  723.         mazexy(&mm);
  724.         levl[(xupstair = mm.x)][(yupstair = mm.y)].scrsym = UP_SYM;
  725. !       levl[xupstair][yupstair].typ = STAIRS;
  726.         xdnstair = ydnstair = 0;
  727.   }
  728.  
  729. --- 105,109 -----
  730.         mazexy(&mm);
  731.         levl[(xupstair = mm.x)][(yupstair = mm.y)].scrsym = UP_SYM;
  732. !       RM_SET_TYP(levl[xupstair][yupstair], STAIRS);
  733.         xdnstair = ydnstair = 0;
  734.   }
  735. ***************
  736. *** 129,133
  737.                 x = (int) mazex[pos];
  738.                 y = (int) mazey[pos];
  739. !               levl[x][y].typ = ROOM;
  740.                 q = 0;
  741.                 for (a = 0; a < 4; a++)
  742.  
  743. --- 129,133 -----
  744.                 x = (int) mazex[pos];
  745.                 y = (int) mazey[pos];
  746. !               RM_SET_TYP(levl[x][y], ROOM);
  747.                 q = 0;
  748.                 for (a = 0; a < 4; a++)
  749. ***************
  750. *** 138,142
  751.                         dir = dirs[rn2(q)];
  752.                         move(&x, &y, dir);
  753. !                       levl[x][y].typ = ROOM;
  754.                         move(&x, &y, dir);
  755.                         pos++;
  756.  
  757. --- 138,142 -----
  758.                         dir = dirs[rn2(q)];
  759.                         move(&x, &y, dir);
  760. !                       RM_SET_TYP(levl[x][y], ROOM);
  761.                         move(&x, &y, dir);
  762.                         pos++;
  763. ***************
  764. *** 153,157
  765.   register int q,a,dir;
  766.   int dirs[4];
  767. !       levl[x][y].typ = ROOM;
  768.         while(1) {
  769.                 q = 0;
  770.  
  771. --- 153,157 -----
  772.   register int q,a,dir;
  773.   int dirs[4];
  774. !       RM_SET_TYP(levl[x][y], ROOM);
  775.         while(1) {
  776.                 q = 0;
  777. ***************
  778. *** 161,165
  779.                 dir = dirs[rn2(q)];
  780.                 move(&x,&y,dir);
  781. !               levl[x][y].typ = ROOM;
  782.                 move(&x,&y,dir);
  783.                 walkfrom(x,y);
  784.  
  785. --- 161,165 -----
  786.                 dir = dirs[rn2(q)];
  787.                 move(&x,&y,dir);
  788. !               RM_SET_TYP(levl[x][y], ROOM);
  789.                 move(&x,&y,dir);
  790.                 walkfrom(x,y);
  791. ***************
  792. *** 186,190
  793.         move(&x,&y,dir);
  794.         move(&x,&y,dir);
  795. !       if(x<3 || y<3 || x>COLNO-3 || y>ROWNO-3 || levl[x][y].typ != 0)
  796.                 return(0);
  797.         else
  798.  
  799. --- 186,190 -----
  800.         move(&x,&y,dir);
  801.         move(&x,&y,dir);
  802. !       if(x<3 || y<3 || x>COLNO-3 || y>ROWNO-3 || RM_TYP(levl[x][y]) != 0)
  803.                 return(0);
  804.         else
  805. diff -bc2 mkobj.c AmigaVersion:mkobj.c
  806. *** mkobj.c     Wed May  4 15:08:24 1988
  807. --- AmigaVersion:mkobj.c         Mon Jul 25 01:12:44 1988
  808. ***************
  809. *** 96,101
  810.         otmp->otyp = otyp;
  811.         otmp->dknown = index(
  812. ! #ifdef KAA
  813. ! #ifdef SPELLS
  814.         "/=!?*+)",
  815.   #else
  816.  
  817. --- 96,101 -----
  818.         otmp->otyp = otyp;
  819.         otmp->dknown = index(
  820. ! #ifdef KAA    /* Add ) */
  821. ! # ifdef SPELLS        /* Add + */
  822.         "/=!?*+)",
  823.   # else
  824. ***************
  825. *** 99,103
  826.   #ifdef SPELLS
  827.         "/=!?*+)",
  828. ! #else
  829.         "/=!?*)",
  830.   #endif
  831.  
  832. --- 99,103 -----
  833.   # ifdef SPELLS        /* Add + */
  834.         "/=!?*+)",
  835. ! # else
  836.         "/=!?*)",
  837.   # endif
  838. ***************
  839. *** 101,105
  840.   #else
  841.         "/=!?*)",
  842. ! #endif
  843.   #else
  844.   #ifdef SPELLS
  845.  
  846. --- 101,105 -----
  847.   # else
  848.         "/=!?*)",
  849. ! # endif
  850.   #else
  851.   # ifdef SPELLS
  852. ***************
  853. *** 103,107
  854.   #endif
  855.   #else
  856. ! #ifdef SPELLS
  857.         "/=!?*+",
  858.   #else
  859.  
  860. --- 103,107 -----
  861.   # endif
  862.   #else
  863. ! # ifdef SPELLS
  864.         "/=!?*+",
  865.   # else
  866. ***************
  867. *** 105,109
  868.   #ifdef SPELLS
  869.         "/=!?*+",
  870. ! #else
  871.         "/=!?*",
  872.   #endif
  873.  
  874. --- 105,109 -----
  875.   # ifdef SPELLS
  876.         "/=!?*+",
  877. ! # else
  878.         "/=!?*",
  879.   # endif
  880. ***************
  881. *** 107,111
  882.   #else
  883.         "/=!?*",
  884. ! #endif
  885.   #endif
  886.                     let) ? 0 : 1;
  887.  
  888. --- 107,111 -----
  889.   # else
  890.         "/=!?*",
  891. ! # endif
  892.   #endif
  893.                     let) ? 0 : 1;
  894. diff -bc2 mkroom.h AmigaVersion:mkroom.h
  895. No differences encountered
  896. diff -bc2 mkshop.c AmigaVersion:mkshop.c
  897. *** mkshop.c    Wed May  4 15:08:26 1988
  898. --- AmigaVersion:mkshop.c        Sat Jul 23 00:09:25 1988
  899. ***************
  900. *** 204,208
  901.                 sx = sroom->lx + (rn2(sroom->hx - sroom->lx));
  902.                 sy = sroom->ly + (rn2(sroom->hy - sroom->ly));
  903. !               levl[sx][sy].typ = THRONE;
  904.                 levl[sx][sy].scrsym = THRONE_SYM;
  905.                 mkgold((long) rn1(50 * dlevel,10), sx, sy);
  906.  
  907. --- 204,208 -----
  908.                   sx = sroom->lx + (rn2(sroom->hx - sroom->lx));
  909.                   sy = sroom->ly + (rn2(sroom->hy - sroom->ly));
  910. !                 RM_SET_TYP(levl[sx][sy], THRONE);
  911.                   levl[sx][sy].scrsym = THRONE_SYM;
  912.                   mkgold((long) rn1(50 * dlevel,10), sx, sy);
  913. ***************
  914. *** 242,246
  915.                 if((sx+sy)%2 && !o_at(sx,sy) && !t_at(sx,sy)
  916.                              && !m_at(sx,sy) && !nexttodoor(sx,sy)){
  917. !                       levl[sx][sy].typ = POOL;
  918.                         levl[sx][sy].scrsym = POOL_SYM;
  919.                         if(!eelct || !rn2(4)) {
  920.  
  921. --- 242,246 -----
  922.                   if((sx+sy)%2 && !o_at(sx,sy) && !t_at(sx,sy)
  923.                                && !m_at(sx,sy) && !nexttodoor(sx,sy)){
  924. !                         RM_SET_TYP(levl[sx][sy], POOL);
  925.                           levl[sx][sy].scrsym = POOL_SYM;
  926.                           if(!eelct || !rn2(4)) {
  927. ***************
  928. *** 259,264
  929.         register struct rm *lev;
  930.         for(dx = -1; dx <= 1; dx++) for(dy = -1; dy <= 1; dy++)
  931. !               if((lev = &levl[sx+dx][sy+dy])->typ == DOOR ||
  932. !                   lev->typ == SDOOR || lev->typ == LDOOR)
  933.                         return(TRUE);
  934.         return(FALSE);
  935.  
  936. --- 259,264 -----
  937.           register struct rm *lev;
  938.           for(dx = -1; dx <= 1; dx++) for(dy = -1; dy <= 1; dy++)
  939. !                 if((lev = &levl[sx+dx][sy+dy]), RM_TYP(*lev) == DOOR ||
  940. !                     RM_TYP(*lev) == SDOOR || RM_TYP(*lev) == LDOOR)
  941.                           return(TRUE);
  942.           return(FALSE);
  943. diff -bc2 monst.c AmigaVersion:monst.c
  944. No differences encountered
  945. diff -bc2 monst.h AmigaVersion:monst.h
  946. No differences encountered
  947. diff -bc2 msdos.h AmigaVersion:msdos.h
  948. No differences encountered
  949.  
  950. diff -bc2 apply.c df1:apply.c
  951. *** apply.c     Wed May  4 15:07:42 1988
  952. --- df1:apply.c         Fri Jul 22 17:42:16 1988
  953. ***************
  954. *** 218,222
  955.         }
  956.         lev = &levl[rx][ry];
  957. !       if(lev->typ == SDOOR) {
  958.                 pline("You hear a hollow sound!  This must be a secret door!");
  959.                 lev->typ = DOOR;
  960.  
  961. --- 218,222 -----
  962.         }
  963.         lev = &levl[rx][ry];
  964. !       if(RM_TYP(*lev) == SDOOR) {
  965.                 pline("You hear a hollow sound!  This must be a secret door!");
  966.                 RM_SET_TYP(*lev, DOOR);
  967. ***************
  968. *** 220,224
  969.         if(lev->typ == SDOOR) {
  970.                 pline("You hear a hollow sound!  This must be a secret door!");
  971. !               lev->typ = DOOR;
  972.                 atl(rx, ry, DOOR_SYM);
  973.                 return(0);
  974.  
  975. --- 220,224 -----
  976.         if(RM_TYP(*lev) == SDOOR) {
  977.                 pline("You hear a hollow sound!  This must be a secret door!");
  978. !               RM_SET_TYP(*lev, DOOR);
  979.                 atl(rx, ry, DOOR_SYM);
  980.                 return(0);
  981. ***************
  982. *** 224,228
  983.                 return(0);
  984.         }
  985. !       if(lev->typ == SCORR) {
  986.                 pline("You hear a hollow sound!  This must be a secret
  987. passage!");
  988.                 lev->typ = CORR;
  989.  
  990. --- 224,228 -----
  991.                 return(0);
  992.         }
  993. !       if(RM_TYP(*lev) == SCORR) {
  994.                 pline("You hear a hollow sound!  This must be a secret
  995. passage!");
  996.                 RM_SET_TYP(*lev, CORR);
  997. ***************
  998. *** 226,230
  999.         if(lev->typ == SCORR) {
  1000.                 pline("You hear a hollow sound!  This must be a secret
  1001. passage!");
  1002. !               lev->typ = CORR;
  1003.                 atl(rx, ry, CORR_SYM);
  1004.                 return(0);
  1005.  
  1006. --- 226,230 -----
  1007.         if(RM_TYP(*lev) == SCORR) {
  1008.                 pline("You hear a hollow sound!  This must be a secret
  1009. passage!");
  1010. !               RM_SET_TYP(*lev, CORR);
  1011.                 atl(rx, ry, CORR_SYM);
  1012.                 return(0);
  1013. ***************
  1014. *** 323,327
  1015.                 if(mtmp = m_at(bchx,bchy))
  1016.                         break;
  1017. !               if(!ZAP_POS(levl[bchx][bchy].typ)) {
  1018.                         bchx -= ddx;
  1019.                         bchy -= ddy;
  1020.  
  1021. --- 323,327 -----
  1022.                 if(mtmp = m_at(bchx,bchy))
  1023.                         break;
  1024. !               if(!ZAP_POS(RM_TYP(levl[bchx][bchy]))) {
  1025.                         bchx -= ddx;
  1026.                         bchy -= ddy;
  1027. ***************
  1028. *** 461,466
  1029.                         fracture_rock(obj);
  1030.                         digtxt = "The rock falls apart.";
  1031. !               } else if(!lev->typ || lev->typ == SCORR) {
  1032. !                       lev->typ = CORR;
  1033.                         digtxt = "You succeeded in cutting away some rock.";
  1034.                 } else if(lev->typ == HWALL || lev->typ == VWALL
  1035.  
  1036. --- 461,466 -----
  1037.                         fracture_rock(obj);
  1038.                         digtxt = "The rock falls apart.";
  1039. !               } else if(!RM_TYP(*lev) || RM_TYP(*lev) == SCORR) {
  1040. !                       RM_SET_TYP(*lev, CORR);
  1041.                         digtxt = "You succeeded in cutting away some rock.";
  1042.                 } else if(RM_TYP(*lev) == HWALL || RM_TYP(*lev) == VWALL
  1043. ***************
  1044. *** 464,470
  1045.                         lev->typ = CORR;
  1046.                         digtxt = "You succeeded in cutting away some rock.";
  1047. !               } else if(lev->typ == HWALL || lev->typ == VWALL
  1048. !                                           || lev->typ == SDOOR) {
  1049. !                       lev->typ = xdnstair ? DOOR : ROOM;
  1050.                         digtxt = "You just made an opening in the wall.";
  1051.                 } else
  1052.  
  1053. --- 464,470 -----
  1054.                         RM_SET_TYP(*lev, CORR);
  1055.                         digtxt = "You succeeded in cutting away some rock.";
  1056. !               } else if(RM_TYP(*lev) == HWALL || RM_TYP(*lev) == VWALL
  1057. !                                               || RM_TYP(*lev) == SDOOR) {
  1058. !                       RM_SET_TYP(*lev, xdnstair ? DOOR : ROOM);
  1059.                         digtxt = "You just made an opening in the wall.";
  1060.                 } else
  1061. ***************
  1062. *** 475,479
  1063.                 return(0);
  1064.         } else {
  1065. !               if(IS_WALL(levl[dpx][dpy].typ)) {
  1066.                         register int rno = inroom(dpx,dpy);
  1067.  
  1068.  
  1069. --- 475,479 -----
  1070.                 return(0);
  1071.         } else {
  1072. !               if(IS_WALL(RM_TYP(levl[dpx][dpy]))) {
  1073.                         register int rno = inroom(dpx,dpy);
  1074.  
  1075. ***************
  1076. *** 569,573
  1077.                 ry = u.uy + u.dy;
  1078.                 if(u.dz > 0 || (u.dz == 0 && isok(rx, ry) &&
  1079. !                   (IS_ROCK(levl[rx][ry].typ)
  1080.                     || sobj_at(ENORMOUS_ROCK, rx, ry))))
  1081.                         *dsp++ = *sdp;
  1082.  
  1083. --- 569,573 -----
  1084.                 ry = u.uy + u.dy;
  1085.                 if(u.dz > 0 || (u.dz == 0 && isok(rx, ry) &&
  1086. !                   (IS_ROCK(RM_TYP(levl[rx][ry]))
  1087.                     || sobj_at(ENORMOUS_ROCK, rx, ry))))
  1088.                         *dsp++ = *sdp;
  1089. ***************
  1090. *** 603,607
  1091.                 }
  1092.                 lev = &levl[rx][ry];
  1093. !               if(lev->typ == DOOR)
  1094.                         pline("Your %s against the door.",
  1095.                                 aobjnam(obj, "clang"));
  1096.  
  1097. --- 603,607 -----
  1098.                 }
  1099.                 lev = &levl[rx][ry];
  1100. !               if (RM_TYP(*lev) == DOOR)
  1101.                         pline("Your %s against the door.",
  1102.                                 aobjnam(obj, "clang"));
  1103. ***************
  1104. *** 606,610
  1105.                         pline("Your %s against the door.",
  1106.                                 aobjnam(obj, "clang"));
  1107. !               else if(!IS_ROCK(lev->typ)
  1108.                      && !sobj_at(ENORMOUS_ROCK, rx, ry)) {
  1109.                         /* ACCESSIBLE or POOL */
  1110.  
  1111. --- 606,610 -----
  1112.                         pline("Your %s against the door.",
  1113.                                 aobjnam(obj, "clang"));
  1114. !               else if(!IS_ROCK(RM_TYP(*lev))
  1115.                      && !sobj_at(ENORMOUS_ROCK, rx, ry)) {
  1116.                         /* ACCESSIBLE or POOL */
  1117. diff -bc2 cmd.c df1:cmd.c
  1118. *** cmd.c       Wed May  4 15:07:46 1988
  1119. --- df1:cmd.c   Tue Jul 26 12:16:49 1988
  1120. ***************
  1121. *** 131,135
  1122.  
  1123.   struct func_tab cmdlist[]={
  1124. ! #if defined(DGKMOD) && defined(DEBUG_DOESNT_WORK)
  1125.         {'\004', /* ^D */ dodebug},     /* generic debug function */
  1126.   #endif
  1127.  
  1128. --- 131,137 -----
  1129.  
  1130.   struct func_tab cmdlist[]={
  1131. ! /*#if defined(DGKMOD) && defined(DEBUG_DOESNT_WORK)*/
  1132. ! #ifdef DKGMOD
  1133. ! # ifdef DEBUG_DOESNT_WORK
  1134.         {'\004', /* ^D */ dodebug},     /* generic debug function */
  1135.   # endif
  1136. ***************
  1137. *** 133,136
  1138.   #if defined(DGKMOD) && defined(DEBUG_DOESNT_WORK)
  1139.         {'\004', /* ^D */ dodebug},     /* generic debug function */
  1140.   #endif
  1141.   #ifdef WIZARD
  1142.  
  1143. --- 135,139 -----
  1144.   # ifdef DEBUG_DOESNT_WORK
  1145.         {'\004', /* ^D */ dodebug},     /* generic debug function */
  1146. + # endif
  1147.   #endif
  1148.  
  1149. ***************
  1150. *** 134,137
  1151.         {'\004', /* ^D */ dodebug},     /* generic debug function */
  1152.   #endif
  1153.   #ifdef WIZARD
  1154.         {'\005', /* ^E */ wiz_detect},
  1155.  
  1156. --- 137,141 -----
  1157.   # endif
  1158.   #endif
  1159. +
  1160.   #ifdef WIZARD
  1161.         {'\005', /* ^E */ wiz_detect},
  1162. ***************
  1163. *** 226,230
  1164.         "dip", "dip an object into something", dodip,
  1165.   #ifdef PRAYERS
  1166. ! #ifdef THEOLOGY
  1167.         "sacrifice", "offer a sacrifice to the gods", dosacrifice,
  1168.   #endif
  1169.  
  1170. --- 230,234 -----
  1171.         "dip", "dip an object into something", dodip,
  1172.   #ifdef PRAYERS
  1173. ! # ifdef THEOLOGY
  1174.         "sacrifice", "offer a sacrifice to the gods", dosacrifice,
  1175.   # endif
  1176. ***************
  1177. *** 228,232
  1178.   #ifdef THEOLOGY
  1179.         "sacrifice", "offer a sacrifice to the gods", dosacrifice,
  1180. ! #endif
  1181.         "pray", "pray to the gods for help", dopray,
  1182.   #endif
  1183.  
  1184. --- 232,236 -----
  1185.   # ifdef THEOLOGY
  1186.         "sacrifice", "offer a sacrifice to the gods", dosacrifice,
  1187. ! # endif
  1188.         "pray", "pray to the gods for help", dopray,
  1189.   #endif
  1190. ***************
  1191. *** 239,243
  1192.         "turn", "turn undead", doturn,
  1193.   #endif
  1194. ! #if defined(KOPS) && defined(KAA)
  1195.         "wipe", "wipe your face off", dowipe,
  1196.   #endif
  1197.  
  1198. --- 243,249 -----
  1199.         "turn", "turn undead", doturn,
  1200.   #endif
  1201. ! /* #if defined(KOPS) && defined(KAA) */
  1202. ! #ifdef KOPS
  1203. ! # ifdef KAA
  1204.         "wipe", "wipe your face off", dowipe,
  1205.   # endif
  1206. ***************
  1207. *** 241,244
  1208.   #if defined(KOPS) && defined(KAA)
  1209.         "wipe", "wipe your face off", dowipe,
  1210.   #endif
  1211.         "?", "get this list of extended commands", doextlist,
  1212.  
  1213. --- 247,251 -----
  1214.   # ifdef KAA
  1215.         "wipe", "wipe your face off", dowipe,
  1216. + # endif
  1217.   #endif
  1218.         "?", "get this list of extended commands", doextlist,
  1219. diff -bc2 decl.c df1:decl.c
  1220. *** decl.c      Tue May  3 16:57:56 1988
  1221. --- df1:decl.c  Fri Jul 22 19:50:05 1988
  1222. ***************
  1223. *** 18,22
  1224.       '"',
  1225.   # endif
  1226. ! #ifdef SINKS
  1227.       '#',
  1228.   #endif
  1229.  
  1230. --- 18,22 -----
  1231.       '"',
  1232.   # endif
  1233. ! # ifdef SINKS
  1234.       '#',
  1235.   # endif
  1236. ***************
  1237. *** 20,24
  1238.   #ifdef SINKS
  1239.       '#',
  1240. ! #endif
  1241.   };
  1242.  
  1243.  
  1244. --- 20,24 -----
  1245.   # ifdef SINKS
  1246.       '#',
  1247. ! # endif
  1248.   };
  1249.  
  1250. diff -bc2 do.c df1:do.c
  1251. *** do.c        Wed May  4 15:07:50 1988
  1252. --- df1:do.c    Wed Jul 27 23:42:55 1988
  1253. ***************
  1254. *** 70,74
  1255.   #endif
  1256.   #ifdef SINKS
  1257. !       if((obj->olet == RING_SYM) && IS_SINK(levl[u.ux][u.uy].typ))
  1258.             if (u.uswallow) {
  1259.                 freeinv(obj);
  1260.  
  1261. --- 70,74 -----
  1262.   #endif
  1263.   #ifdef SINKS
  1264. !       if((obj->olet == RING_SYM) && IS_SINK(RM_TYP(levl[u.ux][u.uy])))
  1265.             if (u.uswallow) {
  1266.                 freeinv(obj);
  1267. ***************
  1268. *** 203,206
  1269.   #ifdef DGK
  1270.         if (!savelev(fd, dlevel, COUNT)) {
  1271.                 (void) close(fd);
  1272.                 (void) unlink(lock);
  1273.  
  1274. --- 203,209 -----
  1275.   #ifdef DGK
  1276.         if (!savelev(fd, dlevel, COUNT)) {
  1277. + # ifdef COMPRESS
  1278. +               bflush(fd);
  1279. + # endif
  1280.                 (void) close(fd);
  1281.                 (void) unlink(lock);
  1282. ***************
  1283. *** 222,225
  1284.  
  1285.   #ifdef DGK
  1286.         savelev(fd,dlevel, WRITE);
  1287.   #else
  1288.  
  1289. --- 225,231 -----
  1290.  
  1291.   #ifdef DGK
  1292. + # ifdef COMPRESS
  1293. +       bflush(fd); /* Forget buffer */
  1294. + # endif
  1295.         savelev(fd,dlevel, WRITE);
  1296.   #else
  1297. ***************
  1298. *** 226,229
  1299.         savelev(fd,dlevel);
  1300.   #endif
  1301.         (void) close(fd);
  1302.  
  1303.  
  1304. --- 232,238 -----
  1305.         savelev(fd,dlevel);
  1306.   #endif
  1307. + #ifdef COMPRESS
  1308. +       bflush(fd); /* Flush buffer */
  1309. + #endif
  1310.         (void) close(fd);
  1311.  
  1312. ***************
  1313. *** 256,259
  1314.                         done("tricked");
  1315.                 }
  1316.                 getlev(fd, hackpid, dlevel);
  1317.                 (void) close(fd);
  1318.  
  1319. --- 265,271 -----
  1320.                         done("tricked");
  1321.                 }
  1322. + #ifdef COMPRESS
  1323. +               minit();
  1324. + #endif
  1325.                 getlev(fd, hackpid, dlevel);
  1326.                 (void) close(fd);
  1327. ***************
  1328. *** 298,302
  1329.                 u.ux = rnd(COLNO-1);
  1330.                 u.uy = rn2(ROWNO);
  1331. !           } while(levl[u.ux][u.uy].typ != ROOM ||
  1332.                         m_at(u.ux,u.uy));
  1333.             if(Punished){
  1334.  
  1335. --- 310,314 -----
  1336.                 u.ux = rnd(COLNO-1);
  1337.                 u.uy = rn2(ROWNO);
  1338. !           } while(RM_TYP(levl[u.ux][u.uy]) != ROOM ||
  1339.                         m_at(u.ux,u.uy));
  1340.             if(Punished){
  1341. ***************
  1342. *** 328,332
  1343.   }
  1344.  
  1345. ! #if defined(KAA) && defined(KOPS)
  1346.   wipeoff()
  1347.   {
  1348.  
  1349. --- 340,346 -----
  1350.   }
  1351.  
  1352. ! /* #if defined(KAA) && defined(KOPS) */
  1353. ! #ifdef KAA
  1354. ! # ifdef KOPS
  1355.   wipeoff()
  1356.   {
  1357. ***************
  1358. *** 351,355
  1359.   {
  1360.         if(u.ucreamed)  {
  1361. ! #ifdef DGKMOD
  1362.                 set_occupation(wipeoff, "wiping off your face", 0);
  1363.   #else
  1364.  
  1365. --- 365,369 -----
  1366.   {
  1367.         if(u.ucreamed)  {
  1368. ! #  ifdef DGKMOD
  1369.                 set_occupation(wipeoff, "wiping off your face", 0);
  1370.   #  else
  1371. ***************
  1372. *** 353,357
  1373.   #ifdef DGKMOD
  1374.                 set_occupation(wipeoff, "wiping off your face", 0);
  1375. ! #else
  1376.                 occupation = wipeoff;
  1377.                 occtxt = "wiping off your face";
  1378.  
  1379. --- 367,371 -----
  1380.   #  ifdef DGKMOD
  1381.                 set_occupation(wipeoff, "wiping off your face", 0);
  1382. ! #  else
  1383.                 occupation = wipeoff;
  1384.                 occtxt = "wiping off your face";
  1385. ***************
  1386. *** 356,360
  1387.                 occupation = wipeoff;
  1388.                 occtxt = "wiping off your face";
  1389. ! #endif
  1390.                 return(1);
  1391.         }
  1392.  
  1393. --- 370,374 -----
  1394.                 occupation = wipeoff;
  1395.                 occtxt = "wiping off your face";
  1396. ! #  endif
  1397.                 return(1);
  1398.         }
  1399. ***************
  1400. *** 362,366
  1401.         return(1);
  1402.   }
  1403. ! #endif
  1404.  
  1405.   /* split obj so that it gets size num */
  1406.  
  1407. --- 376,381 -----
  1408.         return(1);
  1409.   }
  1410. ! # endif
  1411. ! #endif /* KAA && KOPS */
  1412.  
  1413.   /* split obj so that it gets size num */
  1414. diff -bc2 do_name.c df1:do_name.c
  1415. No differences encountered
  1416. diff -bc2 do_wear.c df1:do_wear.c
  1417. No differences encountered
  1418. diff -bc2 dogmove.c df1:dogmove.c
  1419. *** dogmove.c   Fri Jan 22 09:08:32 1988
  1420. --- df1:dogmove.c       Mon Jul 11 16:52:15 1988
  1421. ***************
  1422. *** 156,160
  1423.                         return(0);
  1424.                 if(udist > 1){
  1425. !                       if(!IS_ROOM(levl[u.ux][u.uy].typ) || !rn2(4) ||
  1426.                            whappr ||
  1427.                            (mtmp->minvent && rn2((int) edog->apport)))
  1428.  
  1429. --- 156,160 -----
  1430.             return(0);
  1431.         if(udist > 1){
  1432. !           if(!IS_ROOM(RM_TYP(levl[u.ux][u.uy])) || !rn2(4) ||
  1433.                whappr ||
  1434.                (mtmp->minvent && rn2((int) edog->apport)))
  1435. diff -bc2 eat.c df1:eat.c
  1436. No differences encountered
  1437. diff -bc2 end.c df1:end.c
  1438. *** end.c       Wed May  4 15:07:58 1988
  1439. --- df1:end.c   Mon Jul 25 15:36:45 1988
  1440. ***************
  1441. *** 16,20
  1442.   {
  1443.         (void) signal(SIGINT,SIG_IGN);
  1444. ! #if defined(WIZARD) && defined(UNIX) && !defined(KJSMODS)
  1445.         if(wizard) {
  1446.             pline("Dump core?");
  1447.  
  1448. --- 16,23 -----
  1449.   {
  1450.         (void) signal(SIGINT,SIG_IGN);
  1451. ! /* #if defined(WIZARD) && defined(UNIX) && !defined(KJSMODS) */
  1452. ! #ifdef WIZARD
  1453. ! # ifdef UNIX
  1454. ! #  ifndef KJSMODS
  1455.         if(wizard) {
  1456.             pline("Dump core?");
  1457. ***************
  1458. *** 24,27
  1459.             }
  1460.         }
  1461.   #endif
  1462.         pline("Really quit?");
  1463.  
  1464. --- 27,32 -----
  1465.             }
  1466.         }
  1467. + #  endif
  1468. + # endif
  1469.   #endif
  1470.         pline("Really quit?");
  1471. ***************
  1472. *** 96,99
  1473.         dosave0(0);
  1474.   #endif
  1475.         fputs(" ERROR:  ", stdout);
  1476.         printf(str,a1,a2,a3,a4,a5,a6);
  1477.  
  1478. --- 101,107 -----
  1479.         dosave0(0);
  1480.   #endif
  1481. + #ifdef stdout_puts  /* For AMIGA */
  1482. +       stdout_puts(" ERROR:  ");
  1483. + #else
  1484.         fputs(" ERROR:  ", stdout);
  1485.   #endif
  1486. ***************
  1487. *** 97,100
  1488.   #endif
  1489.         fputs(" ERROR:  ", stdout);
  1490.         printf(str,a1,a2,a3,a4,a5,a6);
  1491.         more();                         /* contains a fflush() */
  1492.  
  1493. --- 105,109 -----
  1494.   #else
  1495.         fputs(" ERROR:  ", stdout);
  1496. + #endif
  1497.         printf(str,a1,a2,a3,a4,a5,a6);
  1498.         more();                         /* contains a fflush() */
  1499. ***************
  1500. *** 189,192
  1501.   #endif
  1502.         settty((char *) 0);     /* does a clear_screen() */
  1503.         if(!done_stopprint)
  1504.             printf("Goodbye %s %s...\n\n", (Badged) ? "Officer" : pl_character,
  1505. plname);
  1506.  
  1507. --- 198,204 -----
  1508.   #endif
  1509.         settty((char *) 0);     /* does a clear_screen() */
  1510. + #ifdef AMIGA
  1511. +       curx = FAR;
  1512. + #endif
  1513.         if(!done_stopprint)
  1514.             printf("Goodbye %s %s...\n\n", (Badged) ? "Officer" : pl_character,
  1515. plname);
  1516. ***************
  1517. *** 294,298
  1518.                 cls();
  1519.         }
  1520. ! #ifdef MSDOSCOLOR
  1521.         end_screen();
  1522.   #endif
  1523.  
  1524. --- 306,310 -----
  1525.                 cls();
  1526.         }
  1527. ! /*#ifdef MSDOSCOLOR
  1528.         end_screen();
  1529.   #endif*/
  1530. ***************
  1531. *** 296,300
  1532.   #ifdef MSDOSCOLOR
  1533.         end_screen();
  1534. ! #endif
  1535.   #ifdef WIZARD
  1536.         if(!wizard)
  1537.  
  1538. --- 308,312 -----
  1539.   /*#ifdef MSDOSCOLOR
  1540.         end_screen();
  1541. ! #endif*/
  1542.   #ifdef WIZARD
  1543.         if(!wizard)
  1544. diff -bc2 engrave.c df1:engrave.c
  1545. *** engrave.c   Wed May  4 15:08:00 1988
  1546. --- df1:engrave.c       Wed Aug  3 21:21:58 1988
  1547. ***************
  1548. *** 525,528
  1549.   save_engravings(fd) int fd; {
  1550.   register struct engr *ep = head_engr;
  1551.         while(ep) {
  1552.                 if(!ep->engr_lth || !ep->engr_txt[0]){
  1553.  
  1554. --- 525,529 -----
  1555.   save_engravings(fd) int fd; {
  1556.   register struct engr *ep = head_engr;
  1557. + register struct engr *ep2;
  1558.         while(ep) {
  1559.             ep2 = ep->nxt_engr;
  1560. ***************
  1561. *** 526,533
  1562.   register struct engr *ep = head_engr;
  1563.         while(ep) {
  1564. !               if(!ep->engr_lth || !ep->engr_txt[0]){
  1565. !                       ep = ep->nxt_engr;
  1566. !                       continue;
  1567. !               }
  1568.                 bwrite(fd, (char *) & (ep->engr_lth), sizeof(ep->engr_lth));
  1569.                 bwrite(fd, (char *) ep, sizeof(struct engr) + ep->engr_lth);
  1570.  
  1571. --- 527,532 -----
  1572.   register struct engr *ep2;
  1573.         while(ep) {
  1574. !           ep2 = ep->nxt_engr;
  1575. !           if(ep->engr_lth && ep->engr_txt[0]){
  1576.                 bwrite(fd, (char *) & (ep->engr_lth), sizeof(ep->engr_lth));
  1577.                 bwrite(fd, (char *) ep, sizeof(struct engr) + ep->engr_lth);
  1578. ***************
  1579. *** 532,536
  1580.                 bwrite(fd, (char *) & (ep->engr_lth), sizeof(ep->engr_lth));
  1581.                 bwrite(fd, (char *) ep, sizeof(struct engr) + ep->engr_lth);
  1582. !               ep = ep->nxt_engr;
  1583.         }
  1584.         bwrite(fd, (char *) nul, sizeof(unsigned));
  1585.  
  1586. --- 531,540 -----
  1587.                 bwrite(fd, (char *) & (ep->engr_lth), sizeof(ep->engr_lth));
  1588.                 bwrite(fd, (char *) ep, sizeof(struct engr) + ep->engr_lth);
  1589. !           }
  1590. ! #ifdef DGK
  1591. !           if (!count_only)
  1592. ! #endif
  1593. !               free(ep);
  1594. !           ep = ep2;
  1595.         }
  1596.         bwrite(fd, (char *) nul, sizeof(unsigned));
  1597. diff -bc2 fight.c df1:fight.c
  1598. *** fight.c     Wed May  4 15:08:02 1988
  1599. --- df1:fight.c         Fri Jul 22 20:54:20 1988
  1600. ***************
  1601. *** 173,177
  1602.   #endif
  1603.         {
  1604. ! #if defined(ROCKMOLE) && defined(KJSMODS)
  1605.             /* if a giant rat is killed by a monster, do not make a
  1606.              * corpse (like Keystone Kops above). */
  1607.  
  1608. --- 173,179 -----
  1609.   #endif
  1610.         {
  1611. ! /* #if defined(ROCKMOLE) && defined(KJSMODS) */
  1612. ! #ifdef ROCKMOLE
  1613. ! # ifdef KJSMODS
  1614.             /* if a giant rat is killed by a monster, do not make a
  1615.              * corpse (like Keystone Kops above). */
  1616. ***************
  1617. *** 177,180
  1618.              * corpse (like Keystone Kops above). */
  1619.             if(!(pd->mlet == 'r' && dlevel < 4))
  1620.   #endif
  1621.             if(!(pd->mlet == '&' && mdef->isdjinni))  /* no djinni corpse */
  1622.  
  1623. --- 179,183 -----
  1624.              * corpse (like Keystone Kops above). */
  1625.             if(!(pd->mlet == 'r' && dlevel < 4))
  1626. + # endif
  1627.   #endif
  1628.             if(!(pd->mlet == '&' && mdef->isdjinni))  /* no djinni corpse */
  1629. diff -bc2 fountain.c df1:fountain.c
  1630. *** fountain.c  Wed May  4 15:08:04 1988
  1631. --- df1:fountain.c      Fri Jul 22 21:00:31 1988
  1632. ***************
  1633. *** 10,16
  1634.    * Implemented levitation bug fixes.
  1635.    *
  1636. -  * Revision 1.4.3  87/11/25  19:16:00  M. Stephenson
  1637. -  * Implemented levitation bug fixes.
  1638. -  *
  1639.    * Revision 1.4.2  87/10/19  11:48:00  M. Stephenson
  1640.    * Implementation of KJS bug fixes.
  1641.  
  1642. --- 10,13 -----
  1643.    * Implemented levitation bug fixes.
  1644.    *
  1645.    * Revision 1.4.2  87/10/19  11:48:00  M. Stephenson
  1646.    * Implementation of KJS bug fixes.
  1647. ***************
  1648. *** 109,113
  1649.             } while(nexttodoor(mx,my) || !((mx+my)%2) ||
  1650.                     (mx == u.ux && my == u.uy) ||
  1651. !                   (IS_POOL(levl[mx][my].typ)));
  1652.  
  1653.             /* Put a pool at mx, my */
  1654.  
  1655. --- 106,110 -----
  1656.             } while(nexttodoor(mx,my) || !((mx+my)%2) ||
  1657.                     (mx == u.ux && my == u.uy) ||
  1658. !                   (IS_POOL(RM_TYP(levl[mx][my]))));
  1659.  
  1660.             /* Put a pool at mx, my */
  1661. ***************
  1662. *** 113,117
  1663.             /* Put a pool at mx, my */
  1664.  
  1665. !           levl[mx][my].typ = POOL;
  1666.             atl(mx,my,POOL_SYM);
  1667.             madepool = 1;
  1668.  
  1669. --- 110,114 -----
  1670.             /* Put a pool at mx, my */
  1671.  
  1672. !           RM_SET_TYP(levl[mx][my], POOL);
  1673.             atl(mx,my,POOL_SYM);
  1674.             madepool = 1;
  1675. ***************
  1676. *** 128,132
  1677.  
  1678.   dryup(){
  1679. !       if (!rn2(3) && (levl[u.ux][u.uy].typ == FOUNTAIN)) {
  1680.                 pline("The fountain dries up!");
  1681.                 levl[u.ux][u.uy].typ = ROOM;
  1682.  
  1683. --- 125,129 -----
  1684.  
  1685.   dryup(){
  1686. !       if (!rn2(3) && (RM_TYP(levl[u.ux][u.uy]) == FOUNTAIN)) {
  1687.                 pline("The fountain dries up!");
  1688.                 RM_SET_TYP(levl[u.ux][u.uy], ROOM);
  1689. ***************
  1690. *** 130,134
  1691.         if (!rn2(3) && (levl[u.ux][u.uy].typ == FOUNTAIN)) {
  1692.                 pline("The fountain dries up!");
  1693. !               levl[u.ux][u.uy].typ = ROOM;
  1694.                 if(Invis) newsym(u.ux, u.uy);
  1695.         }
  1696.  
  1697. --- 127,131 -----
  1698.         if (!rn2(3) && (RM_TYP(levl[u.ux][u.uy]) == FOUNTAIN)) {
  1699.                 pline("The fountain dries up!");
  1700. !               RM_SET_TYP(levl[u.ux][u.uy], ROOM);
  1701.                 if(Invis) newsym(u.ux, u.uy);
  1702.         }
  1703. ***************
  1704. *** 278,282
  1705.                         obj->cursed = 0;
  1706.                         obj->rustfree = 1;
  1707. !                       levl[u.ux][u.uy].typ = ROOM;
  1708.                         if(Invis) newsym(u.ux, u.uy);
  1709.                         return(0);
  1710.  
  1711. --- 275,279 -----
  1712.                         obj->cursed = 0;
  1713.                         obj->rustfree = 1;
  1714. !                       RM_SET_TYP(levl[u.ux][u.uy], ROOM);
  1715.                         if(Invis) newsym(u.ux, u.uy);
  1716.                         return(0);
  1717. diff -bc2 hack.c df1:hack.c
  1718. *** hack.c      Wed May  4 15:08:06 1988
  1719. --- df1:hack.c  Fri Jul 22 21:13:39 1988
  1720. ***************
  1721. *** 36,40
  1722.                 if(!isok(x, y)) continue;
  1723.                 lev = &levl[x][y];
  1724. !               if(!lev->lit && lev->scrsym == ROOM_SYM) {
  1725.                         lev->scrsym = STONE_SYM;
  1726.                         lev->new = 1;
  1727.  
  1728. --- 36,40 -----
  1729.                 if(!isok(x, y)) continue;
  1730.                 lev = &levl[x][y];
  1731. !               if(!RM_LIT(*lev) && lev->scrsym == ROOM_SYM) {
  1732.                         lev->scrsym = STONE_SYM;
  1733.                         RM_SET_NEW(*lev);
  1734. ***************
  1735. *** 38,42
  1736.                 if(!lev->lit && lev->scrsym == ROOM_SYM) {
  1737.                         lev->scrsym = STONE_SYM;
  1738. !                       lev->new = 1;
  1739.                         on_scr(x,y);
  1740.                 }
  1741.  
  1742. --- 38,42 -----
  1743.                 if(!RM_LIT(*lev) && lev->scrsym == ROOM_SYM) {
  1744.                         lev->scrsym = STONE_SYM;
  1745. !                       RM_SET_NEW(*lev);
  1746.                         on_scr(x,y);
  1747.                 }
  1748. ***************
  1749. *** 76,81
  1750.                                 if(!isok(x, y)) continue;
  1751.                                 lev = &levl[x][y];
  1752. !                               if(!lev->lit && lev->scrsym == ROOM_SYM)
  1753. !                                       lev->seen = 0;
  1754.                         }
  1755.         }
  1756.  
  1757. --- 76,81 -----
  1758.                                 if(!isok(x, y)) continue;
  1759.                                 lev = &levl[x][y];
  1760. !                               if(!RM_LIT(*lev) && lev->scrsym == ROOM_SYM)
  1761. !                                       RM_CLR_SEEN(*lev);
  1762.                         }
  1763.         }
  1764. ***************
  1765. *** 94,99
  1766.                 ry = u.uy+2*u.dy;
  1767.                 nomul(0);
  1768. !               if(isok(rx,ry) && !IS_ROCK(levl[rx][ry].typ) &&
  1769. !                   (levl[rx][ry].typ != DOOR || !(u.dx && u.dy)) &&
  1770.                     !sobj_at(ENORMOUS_ROCK, rx, ry)) {
  1771.                         if((mtmp = m_at(rx,ry))) {
  1772.  
  1773. --- 94,99 -----
  1774.                 ry = u.uy+2*u.dy;
  1775.                 nomul(0);
  1776. !               if(isok(rx,ry) && !IS_ROCK(RM_TYP(levl[rx][ry])) &&
  1777. !                   (RM_TYP(levl[rx][ry]) != DOOR || !(u.dx && u.dy)) &&
  1778.                     !sobj_at(ENORMOUS_ROCK, rx, ry)) {
  1779.                         if((mtmp = m_at(rx,ry))) {
  1780. ***************
  1781. *** 118,123
  1782.                                 continue;
  1783.                             }
  1784. !                       if(levl[rx][ry].typ == POOL) {
  1785. !                               levl[rx][ry].typ = ROOM;
  1786.                                 mnewsym(rx,ry);
  1787.                                 prl(rx,ry);
  1788.  
  1789. --- 118,123 -----
  1790.                                 continue;
  1791.                             }
  1792. !                       if(RM_TYP(levl[rx][ry]) == POOL) {
  1793. !                               RM_SET_TYP(levl[rx][ry], ROOM);
  1794.                                 mnewsym(rx,ry);
  1795.                                 prl(rx,ry);
  1796. ***************
  1797. *** 155,160
  1798.   #endif
  1799.                     if((!invent || inv_weight()+90 <= 0) &&
  1800. !                       (!u.dx || !u.dy || (IS_ROCK(levl[u.ux][u.uy+u.dy].typ)
  1801. !                                       &&
  1802. IS_ROCK(levl[u.ux+u.dx][u.uy].typ)))){
  1803.                         pline("However, you can squeeze yourself into a small
  1804. opening.");
  1805.                         break;
  1806.  
  1807. --- 155,160 -----
  1808.   #endif
  1809.                     if((!invent || inv_weight()+90 <= 0) &&
  1810. !                       (!u.dx || !u.dy ||
  1811. (IS_ROCK(RM_TYP(levl[u.ux][u.uy+u.dy]))
  1812. !                                       &&
  1813. IS_ROCK(RM_TYP(levl[u.ux+u.dx][u.uy]))))){
  1814.                         pline("However, you can squeeze yourself into a small
  1815. opening.");
  1816.                         break;
  1817. ***************
  1818. *** 188,192
  1819.                                 confdir();
  1820.                         } while(!isok(u.ux+u.dx, u.uy+u.dy) ||
  1821. !                           IS_ROCK(levl[u.ux+u.dx][u.uy+u.dy].typ));
  1822.                 }
  1823.                 if(!isok(u.ux+u.dx, u.uy+u.dy)){
  1824.  
  1825. --- 188,192 -----
  1826.                                 confdir();
  1827.                         } while(!isok(u.ux+u.dx, u.uy+u.dy) ||
  1828. !                           IS_ROCK(RM_TYP(levl[u.ux+u.dx][u.uy+u.dy])));
  1829. SHAR_EOF
  1830. #    End of shell archive
  1831. exit 0
  1832. -- 
  1833. Bob Page, U of Lowell CS Dept.  page@swan.ulowell.edu  ulowell!page
  1834. Have five nice days.
  1835.